package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc ImplementQuantitativeScoreForAchievementLevelCalcComReqDto
 * @使用场景
 */
@Data
public class ImplementQuantitativeScoreForAchievementLevelCalcComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 是否上不封顶 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否上不封顶不能为空")
  @ApiModelProperty("是否上不封顶")
  private String isCeilingScore;

  /**
   * 权重分值
   */
  @NotNull(message = "权重分值不能为空")
  @ApiModelProperty("权重分值")
  private Double weightScore;

  /**
   * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
   */
  @NotNull(message = "冗余指标业务类型不能为空")
  @ApiModelProperty("冗余指标业务类型")
  private String targetValueType;

  /**
   * 量化评分类型 COMPLETION_DEGREE:完成度 EVERY_ADD_AND_SUB:每加减 ACHIEVEMENT_LEVEL:成果等级
   */
  @NotNull(message = "量化评分类型不能为空")
  @ApiModelProperty("量化评分类型")
  private String quantitativeRatingType;

  /**
   * 更新周期ID
   */
  @NotNull(message = "更新周期ID不能为空")
  @ApiModelProperty("更新周期ID")
  private String updateCycleId;

  /**
   * 归属子周期被评对象目标周期ID
   */
  @NotNull(message = "归属子周期被评对象目标周期ID不能为空")
  @ApiModelProperty("归属子周期被评对象目标周期ID")
  private String evaObjTargetCycleId;

  /**
   * 归属目标内容ID
   */
  @NotNull(message = "归属目标内容ID不能为空")
  @ApiModelProperty("归属目标内容ID")
  private String targetCycleContentId;

  /**
   * 归属评价模板ID
   */
  @NotNull(message = "归属评价模板ID不能为空")
  @ApiModelProperty("归属评价模板ID")
  private String evaluationTemplateId;

  /**
   * 创建于空间ID
   */
  @NotNull(message = "创建于空间ID不能为空")
  @ApiModelProperty("创建于空间ID")
  private String spaceId;

}
